Split functions into separate files
Add tests