refactoring + features + ALL THA STUFF