reorganized implementation structure and created initial test class