implemented slf4j for logging