some logging; inheritance optional;