Finished hands on

- Finished but not commited yet.