First pass, basic tests passing