don't use new if not needed
reformat source code layout
expand Observer comments
add support for epsilon = X - mu
put aside Scale and Observer for now