Implementation

Final implementation for the assignment