feature: add types + setup
initial work