first commit
Adds remaining logic. ready to be used in the workshop :)