Tested and debugged2