try to organize code more...