Refactor/simplify external interface