spout implemented