add type safety on Parameter