not use super type as argument