worked a bit on types