changed author name with email addresses on all functions/classes,
added some test cases,
fixed few bugs