adapted version of existing classes