add layout, fine tune core classes, add application