Ipmi implementation, functional test, minor refactoring