updated types and tests