remove uneeded functions
add abstract class for log and key states
add logging functions
remember kids, this is how real commit message should look like