Initial version with basic functionality and some combinators