split up javascript modules, require speakeasy instead of html linking
subjects are refactored into classes