building core functionality / tests