with some of Charlie's solutions