initial attempt at design