Edited and extended