Improving #4 and resolves #24