Initial implementation
simplify
whitespace