incorporated some more typing