A repository for leaning, exploring and experimenting with design patterns using Java