interface for subscribing/unsubscribing

needs validation of data and return values
split into multiple files
removed old file
updated autoloader