refactored names, added basic framework