initial commit with a basic API
split out specific functionality into separate class files and removed some extraneous comments
uh.. adding a file that already exists?