Initial commit
partial implementation of the API and basic user interface