modificado interface e adicionado state machine (espaco)