major revision from whiteboard discussion