validations, and beginning implementation of core logic