update implementations to bring together common code; update tests
add user template resource