make name dynamic
type stuffs