initial commit
works with very basic functionality