Make functional functions
Add more functional functions
Cleanup
Refactoring