basic shell with api skeleton and tests