Started with second approach
Feature complete