add support functionality
remove unused classes
expanded test coverage