added dynamic limits