initial structure pass
polish, next up testing