some cleanup
refactoring of horse implementation