0.0.1
param can be a func