lots of design, angular, logics