Cleaned up, added optional argument string