added ideas for DRY