some refactor; better images