Most of design implemented