structs more fleshed out, interface present