Final Final Final Final with bug fixes