needs to be types since attributes is only compail time