simplify module design, formalize testing
add travis