duplicate reference and unix like naming mathod

1 add file header macro to prevent from duplicate reference
2 splits parameters list and put every parameter on one line which may
be more user friendly
3 use unix like naming mathod