add basic and tests