schedule module

IN PROGRESS: DO NOT MERGE