Split functions into separate files for easy management