smart lists, kaminari and some refactoring