New design implementation

#57