Tidy and slightly expand user API