make a separate interface for command as part of the api