refactored abstract and preface