added walls and outsourced methods