validation stuff added. more to go