moved file structure, todo: add test cases