Fix #3 and checkin earlier changes
Reorganize project and make parameters composable