further decoupled, implemented struct, etc