Now properly casting to self instance