refactor, remove deprecated code, change Rule interface
add travis-ci config