refactor - limited base set. compiles