not built or tested, few ideas and changes added for further fleshing out