implemented basic framework with tests