Cleaned up, made interface