added refactored methods up to block seat, first tests, and added all needed types