first ports type checking implem