design pattern practising