Some changes and additions by sebi2306