Basic version with basic tests