remove unused import
use static insted of factory
message interface