Refactored AssetRule and Limit into separated abstractions
added migration and key to limit