Major update ... code still needs cleanup