refactored a LOT of stuff. offsets, time, and beats are now strongly typed
added all the new files missing from last commit (runtime crashes)