class hierarchy draft init + some additions