implementation

with some notes